package com.icangya.service;

import com.alibaba.fastjson.JSONObject;
import com.icangya.domain.*;

import java.sql.SQLException;
import java.util.List;

public interface IFootUserService {

    /**
     *
     *用户个人信息
     * @param openId
     * @return
     */
    JSONObject selectUserByOpnId(String openId);


    /**
     * 使用手机号码和密码，查询用户信息
     * @param mobilePhone
     * @param password
     * @return List<FBUserMobile>
     */
    List<FBUserMobile> queryUserByMobilePhoneAndPassword(long mobilePhone,String  password);

    /**
     *
     *用户个人信息
     * @param openId
     * @return
     */
    Object[]  getNickName(String openId);

    /**
     * 获取用户信息
     * @param openId
     * @return
     */
    JSONObject getUserMessage(String openId);

//    /**
//     * 查询代理团队的客服二维码
//     * @param proxyId
//     * @return
//     */
//    AgentImage getAgentImg(long proxyId);

    User getByOpenId(String openId);

    /**
     * 注册用户
     *
     * @param user
     * @return
     */

    User addUser(User user);
    /**
     * 更新用户
     *
     * @param userDO
     * @return
     */
    User updateUser(User userDO);

    /**
     * 获得登录的用户详情
     * @param uid
     * @return
     */
    User getUserByUid(long uid);

    /**
     * 获得上级信息数据
     *
     * @param uid
     * @return
     */
    ProxyLevel getProxyLevel(Long uid);

    /**
     * 保存ProxyDO
     *
     * @param proxyLevel
     * @return
     */
    ProxyLevel saveProxyLevel(ProxyLevel proxyLevel);
    /**
     *
     *获取用户踢球的记录
     * @param openId
     * @return
     */
    JSONObject getKicBallByOpenId(String openId);

    /**
     *
     *添加用户踢球的记录
     * @param kib
     * @return
     */

    JSONObject addKicKBall(KicKBall kib);


    /**
     *
     *提取佣金
     * @param openId  用户id
     * @return
     */
    Boolean cash(String openId,double money);

    /**
     * 用户充值广告金
     * @param openId  用户id
     * @param money  充值的金额数
     * @return
     */
    Boolean rechargeRecord(String openId,Double money);

    /**
     * 查询代理数量
     * @param uid
     * @return
     */
    JSONObject getProxyNum(long uid);



    /**
     * 获取程序最新一期的版本信息
     * @return
     */
    JSONObject getEditionInfo();

    /**
     * 查询所有用户
     * @return
     */
    List<User> getAllUser();

    /**
     * 查询所有用户信息
     * @return
     */
    List<User> findAllUser();
    /**
     * 是第一次充值，就赠送广告金
     * @param openId
     * @param gitMoney
     * @return
     */
    JSONObject setGitMoney(String openId,double gitMoney,double money);

    /**
     *点击邮箱获取赠送广告金
     * @param openId
     * @param id
     * @return
     */
    Boolean setUserGitMoney(String openId,long id);


    /**
     *用户今天还能提现的额度
     * @param openId
     * @return
     */
    double checkCashMoneyAmount(String openId);

    /**
     *
     * @param fbUsermood
     * @param fbMoodImgList
     * @return
     */
    JSONObject saveUserMood(FbUsermood fbUsermood, List<FbMoodImg> fbMoodImgList);


    /**
     *
     * @return List<FbUsermood>
     */
    List  selectUsermoods(String openId,int startPage);

    /**
     *
     * @param id
     * @return FbUsermood
     */
    FbUsermood getFbUserMoodById(Long id);

    /**
     *
     * @param id
     * @return List<FbMoodImg>
     */
    List<FbMoodImg> selectFbMoodImgsByMoodId(Long id);

    /**
     *
     * @param fbComment
     * @return
     */
    JSONObject saveComment(FbComment fbComment);

    /**
     *
     * @param moodId
     * @return
     */
    List<FbComment> selectCommentsByMoodId(Long moodId);

    /**
     * 修改绑定的手机号码
     * @param fbUserMobile
     * @return boolean
     */
    boolean updateMobilePhone(FBUserMobile fbUserMobile);

    /**
     * 根据openid查询记录
     * @param openid
     * @return
     */
    List<FBUserMobile> queryMobilePhoneByOpenid(String openid);


    /**
     * 根据mobilePhone查询记录
     * @param mobilePhone
     * @return
     */
    List<FBUserMobile> queryMobilePhoneByMobilePhone(long mobilePhone);

}
